package models;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.persistence.*;

import play.data.validation.Required;
import play.db.jpa.Model;

@Table(name="import$CIS")
@Entity
public class CIS extends Model{
	
	@Required
	@Column(unique=true)
	public String id_cis;

	@Required
	public String nom;
	
	@Required
	@ManyToOne
	public Groupement groupement;
	
	@ManyToOne
	public Agent responsable;
	
	public boolean echelle;
	
	public CIS(String nom, Agent responsable){
		this.nom=nom;
		this.responsable=responsable;
		this.echelle=false;
	}
	
	public String getNom() {
		return nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}

	public String toString(){
		if(nom.equalsIgnoreCase("Autre")){return groupement.toString();}
		else{return this.nom;}
	}

	public Agent getResponsables() {
		return responsable;
	}

	public void setResponsables(Agent responsable) {
		this.responsable = responsable;
		this.save();
	}
	
	public void enleverResponsable(){
		responsable=null;
	}
	
	/**
	 * rend true si l'agent est responsable d'au moins un CIS ou service
	 * @param agent agent a tester
	 * @return boolean
	 */
	public boolean isResponsable(Agent agent){
		if(this.responsable!=null){
			return agent.equals(this.responsable);
		}
		else {return false;}
	}
	
	/**
	 * retourne la liste des CISService dont l'agent est reponsable (et donc dans la liste des responsables)
	 * @param agent
	 * @return
	 */
	public static List<CIS> getResponsabiliteeCISService(Agent agent){
		List<CIS> cisServices=CIS.find("responsable like ?", agent).fetch();
		return cisServices;
	}
	
}
